home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BCI NET
/
BCI NET Dec 94.iso
/
archives
/
programming
/
source
/
move16v2.lha
/
README
< prev
Wrap
Text File
|
1993-10-13
|
1KB
|
46 lines
For use with SAS/C 6.3
2 source files, Move16.c and Move16_a.asm
This archive contains source and executable which demonstrates
the use of the 68040 Move16 instruction on an 040 amiga.
I am not sure if this instruction is safe for all amigas,
but it is the fastest way to copy mem blocks on an 040
machine.
You must align the src and dest on 16 byte boundaries, and
on some 040's you need a NOP before each block
of MOVE16's and on some 040's a page fault during a move16
can cause problems, but on my A4000/040 It seems to work
just fine.
If anyone knows of any problems with the Move16 instruction
on the Amiga, or would like to email me the
times for their systems, send me internet mail at
uzun@crash.cts.com
or on bix as
ruzun
This pgm has 2 copy block loops, one uses Move16's the
other longword moves, it reports the time to execute
each block for each mem type.
SAS/C 6.3 ASM BUG,
the SAS/C Assembler cannot correctly generate the opcode
for a move16 (a0)+,(a1)+, so you will see a macro which
correctly generated the move16 (a0)+,(a1)+ instruction.
Results on my A4000/040 w 60ns DRAMS
**FAST TO FAST**
MoveMem = 2.2000 secs
MoveMem16 = 1.5000 secs
**Fast to CHIP**
MoveMem = 3.3000 secs
MoveMem16 = 3.2800 secs
**CHIP to Fast**
MoveMem = 4.0600 secs
MoveMem16 = 3.2800 secs
**CHIP to CHIP**
MoveMem = 5.1200 secs
MoveMem16 = 5.1200 secs